Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / tools / MessageBlocklistPage.vue

Displaying Raw • Download


meshchatx/src/frontend/components/tools/MessageBlocklistPage.vue ec74a2651e897325b14269ae52d11b1e12f0b6e2 (ec74a265) Text, 19.45 KB

T8b949e<!-- SPDX-License-Identifier: 0BSD AND MIT -->

Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col flex-1 overflow-hidden min-w-0 bg-slate-50 dark:bg-zinc-950"Tb4b4b4>
Tb4b4b4<Tff7b72ToolsPageHeader
Te6edf3iconTff7b72=Ta5d6ff"shield-alert"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'tools.message_blocklist.title'Tb4b4b4)Ta5d6ff"
Tb4b4b4:Te6edf3descriptionTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'tools.message_blocklist.description'Tb4b4b4)Ta5d6ff"
Te6edf3accentTff7b72=Ta5d6ff"rose"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 overflow-y-auto w-full pb-[max(1rem,env(safe-area-inset-bottom))]"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-3 sm:p-4 md:p-6 max-w-4xl mx-auto w-full space-y-4 min-w-0"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"rounded-xl border border-amber-200 dark:border-amber-900/50 bg-amber-50 dark:bg-amber-950/30 px-4 py-3 flex items-start gap-3"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"alert-circle-outline"
Te6edf3classTff7b72=Ta5d6ff"size-5 text-amber-600 dark:text-amber-400 shrink-0 mt-0.5"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"min-w-0"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-sm font-semibold text-amber-900 dark:text-amber-200"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.beta_notice_title"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-xs text-amber-800/90 dark:text-amber-300/90 mt-1 leading-relaxed"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.beta_notice_body"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"rounded-xl border border-gray-200 dark:border-zinc-800 bg-white dark:bg-zinc-950 p-4 space-y-4"
Tb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-3 cursor-pointer"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3enabledTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"checkbox"
Te6edf3classTff7b72=Ta5d6ff"rounded-sm border-gray-300 size-4"
Tb4b4b4@Te6edf3changeTff7b72=Ta5d6ff"Te6edf3onEnabledChangeTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-sm font-medium text-gray-900 dark:text-white"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.enable_label"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-xs text-gray-500 dark:text-gray-400"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.enable_hint"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"rounded-xl border border-gray-200 dark:border-zinc-800 bg-white dark:bg-zinc-950 p-4 space-y-4"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Te6edf3enabled Tff7b72? Ta5d6ff'' Tff7b72: Ta5d6ff'opacity-60'Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap items-center justify-between gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72h2 Te6edf3classTff7b72=Ta5d6ff"text-base font-semibold text-gray-900 dark:text-white"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.entries_heading"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72h2Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap items-center gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium border border-gray-200 dark:border-zinc-700 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-zinc-900 transition-colors"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3exportListTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"export" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.export"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium border border-gray-200 dark:border-zinc-700 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-zinc-900 transition-colors"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3triggerImportTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"import" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.import"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3refTff7b72=Ta5d6ff"importFileInput"
Te6edf3typeTff7b72=Ta5d6ff"file"
Te6edf3acceptTff7b72=Ta5d6ff".json,application/json"
Te6edf3classTff7b72=Ta5d6ff"hidden"
Tb4b4b4@Te6edf3changeTff7b72=Ta5d6ff"Te6edf3onImportFileTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium bg-rose-600 text-white hover:bg-rose-700 transition-colors"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3addEntryTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"plus" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.add_entry"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"grid grid-cols-1 sm:grid-cols-2 gap-3"Tb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72label
Te6edf3classTff7b72=Ta5d6ff"block text-[10px] font-bold text-gray-400 dark:text-zinc-500 uppercase tracking-widest mb-1"
Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.scope_label"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72label
Tb4b4b4>
Tb4b4b4<Tff7b72select
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3blocklistTb4b4b4.Te6edf3scopeTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"w-full px-3 py-2 rounded-lg border border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 text-sm text-gray-900 dark:text-white"
Tb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"everyone"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.scope_everyone"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"contacts"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.scope_contacts"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"non_contacts"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.scope_non_contacts"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72selectTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"text-[10px] font-bold text-gray-400 dark:text-zinc-500 uppercase tracking-widest"
Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.match_in_label"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-200"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3blocklistTb4b4b4.Te6edf3match_messageTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"checkbox"
Te6edf3classTff7b72=Ta5d6ff"rounded-sm border-gray-300"
Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.match_message"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-200"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3blocklistTb4b4b4.Te6edf3match_peer_fieldsTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"checkbox"
Te6edf3classTff7b72=Ta5d6ff"rounded-sm border-gray-300"
Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.match_peer_fields"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3blocklistTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-500 dark:text-gray-400 py-6 text-center"
Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.empty_entries"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3v-else Te6edf3classTff7b72=Ta5d6ff"space-y-3"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-forTff7b72=Ta5d6ff"Tb4b4b4(Te6edf3entryTb4b4b4, Te6edf3indexTb4b4b4) Tff7b72in Te6edf3blocklistTb4b4b4.Te6edf3entriesTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3entryTb4b4b4.Te6edf3idTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg border border-gray-200 dark:border-zinc-800 p-3 space-y-3 bg-gray-50/80 dark:bg-zinc-900/40"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap items-center justify-between gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-2 text-sm text-gray-700 dark:text-gray-200"Tb4b4b4>
Tb4b4b4<Tff7b72input Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3entryTb4b4b4.Te6edf3enabledTa5d6ff" Te6edf3typeTff7b72=Ta5d6ff"checkbox" Te6edf3classTff7b72=Ta5d6ff"rounded-sm border-gray-300" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.entry_enabled"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center gap-1"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"p-1.5 rounded-lg text-red-600 hover:bg-red-50 dark:hover:bg-red-950/40"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'tools.message_blocklist.remove_entry'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3removeEntryTb4b4b4(Te6edf3indexTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"delete-outline" Te6edf3classTff7b72=Ta5d6ff"size-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"grid grid-cols-1 sm:grid-cols-[1fr_auto] gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3entryTb4b4b4.Te6edf3textTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3classTff7b72=Ta5d6ff"w-full px-3 py-2 rounded-lg border border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 text-sm text-gray-900 dark:text-white font-mono"
Tb4b4b4:Te6edf3placeholderTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'tools.message_blocklist.entry_placeholder'Tb4b4b4)Ta5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72select
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3entryTb4b4b4.Te6edf3match_modeTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"px-3 py-2 rounded-lg border border-gray-200 dark:border-zinc-700 bg-white dark:bg-zinc-900 text-sm text-gray-900 dark:text-white"
Tb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"substring"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.match_mode_substring"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3valueTff7b72=Ta5d6ff"regex"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.match_mode_regex"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72selectTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap items-center gap-2 pt-2"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium bg-rose-600 text-white hover:bg-rose-700 disabled:opacity-50 transition-colors"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3isSavingTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3saveTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"content-save-outline" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isSavingTa5d6ff"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.saving"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3v-elseTb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.save"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium border border-gray-200 dark:border-zinc-700 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-zinc-900 transition-colors"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3reloadTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"refresh" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.revert"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>

Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;
Tff7b72import Te6edf3ToolsPageHeader Tff7b72from Ta5d6ff"./ToolsPageHeader.vue"Tb4b4b4;
Tff7b72import Te6edf3ToastUtils Tff7b72from Ta5d6ff"../../js/ToastUtils"Tb4b4b4;
Tff7b72import Te6edf3DownloadUtils Tff7b72from Ta5d6ff"../../js/DownloadUtils"Tb4b4b4;
Tff7b72import Te6edf3DialogUtils Tff7b72from Ta5d6ff"../../js/DialogUtils"Tb4b4b4;

Tff7b72function Te6edf3newEntryIdTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3toStringTb4b4b4(T79c0ff16Tb4b4b4)Tb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff2Tb4b4b4, T79c0ff18Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"MessageBlocklistPage"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{
Te6edf3MaterialDesignIconTb4b4b4,
Te6edf3ToolsPageHeaderTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3enabledTff7b72: Tff7b72falseTb4b4b4,
Te6edf3blocklistTff7b72: Tb4b4b4{
Te6edf3scopeTff7b72: Ta5d6ff"non_contacts"Tb4b4b4,
Te6edf3match_peer_fieldsTff7b72: Tff7b72falseTb4b4b4,
Te6edf3match_messageTff7b72: Tff7b72trueTb4b4b4,
Te6edf3entriesTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3isSavingTff7b72: Tff7b72falseTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3mountedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3reloadTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Te6edf3mapFromApiTb4b4b4(Te6edf3rawTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3scope Tff7b72= Te6edf3rawTb4b4b4.Te6edf3scope Tff7b72=== Ta5d6ff"contacts" Tff7b72|| Te6edf3rawTb4b4b4.Te6edf3scope Tff7b72=== Ta5d6ff"non_contacts" Tff7b72? Te6edf3rawTb4b4b4.Te6edf3scope Tff7b72: Ta5d6ff"everyone"Tb4b4b4;
Tff7b72const Te6edf3match_peer_fields Tff7b72= Tff7b72!Tff7b72!Te6edf3rawTb4b4b4.Te6edf3match_peer_fieldsTb4b4b4;
Tff7b72const Te6edf3match_message Tff7b72= Te6edf3rawTb4b4b4.Te6edf3match_message Tff7b72!== Tff7b72falseTb4b4b4;
Tff7b72const Te6edf3entries Tff7b72= Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3rawTb4b4b4.Te6edf3entriesTb4b4b4)
Tff7b72? Te6edf3rawTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{
Te6edf3idTff7b72: Te6edf3eTb4b4b4.Te6edf3id Tff7b72|| Te6edf3newEntryIdTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3enabledTff7b72: Te6edf3eTb4b4b4.Te6edf3enabled Tff7b72!== Tff7b72falseTb4b4b4,
Te6edf3textTff7b72: Te6edf3eTb4b4b4.Te6edf3text Tff7b72|| Ta5d6ff""Tb4b4b4,
Te6edf3match_modeTff7b72: Te6edf3eTb4b4b4.Te6edf3match_mode Tff7b72=== Ta5d6ff"regex" Tff7b72? Ta5d6ff"regex" Tff7b72: Ta5d6ff"substring"Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4)
Tff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72return Tb4b4b4{
Te6edf3scopeTb4b4b4,
Te6edf3match_peer_fieldsTb4b4b4,
Te6edf3match_messageTff7b72: Te6edf3match_peer_fields Tff7b72|| Te6edf3match_message Tff7b72? Te6edf3match_message Tff7b72: Tff7b72trueTb4b4b4,
Te6edf3entriesTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3normalizeForSaveTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3match_peer_fields Tff7b72= Tff7b72!Tff7b72!Tff7b72thisTb4b4b4.Te6edf3blocklistTb4b4b4.Te6edf3match_peer_fieldsTb4b4b4;
Tff7b72const Te6edf3match_message Tff7b72= Tff7b72!Tff7b72!Tff7b72thisTb4b4b4.Te6edf3blocklistTb4b4b4.Te6edf3match_messageTb4b4b4;
Tff7b72const Te6edf3targets_ok Tff7b72= Te6edf3match_peer_fields Tff7b72|| Te6edf3match_messageTb4b4b4;
Tff7b72return Tb4b4b4{
Te6edf3scopeTff7b72:
Tff7b72thisTb4b4b4.Te6edf3blocklistTb4b4b4.Te6edf3scope Tff7b72=== Ta5d6ff"contacts" Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3blocklistTb4b4b4.Te6edf3scope Tff7b72=== Ta5d6ff"non_contacts"
Tff7b72? Tff7b72thisTb4b4b4.Te6edf3blocklistTb4b4b4.Te6edf3scope
Tff7b72: Ta5d6ff"everyone"Tb4b4b4,
Te6edf3match_peer_fieldsTff7b72: Te6edf3targets_ok Tff7b72? Te6edf3match_peer_fields Tff7b72: Tff7b72falseTb4b4b4,
Te6edf3match_messageTff7b72: Te6edf3targets_ok Tff7b72? Te6edf3match_message Tff7b72: Tff7b72trueTb4b4b4,
Te6edf3entriesTff7b72: Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3blocklistTb4b4b4.Te6edf3entries Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{
Te6edf3idTff7b72: Te6edf3eTb4b4b4.Te6edf3idTb4b4b4,
Te6edf3enabledTff7b72: Tff7b72!Tff7b72!Te6edf3eTb4b4b4.Te6edf3enabledTb4b4b4,
Te6edf3textTff7b72: Tffa657StringTb4b4b4(Te6edf3eTb4b4b4.Te6edf3text Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3match_modeTff7b72: Te6edf3eTb4b4b4.Te6edf3match_mode Tff7b72=== Ta5d6ff"regex" Tff7b72? Ta5d6ff"regex" Tff7b72: Ta5d6ff"substring"Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3addEntryTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3blocklistTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3idTff7b72: Te6edf3newEntryIdTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3enabledTff7b72: Tff7b72trueTb4b4b4,
Te6edf3textTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3match_modeTff7b72: Ta5d6ff"substring"Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3removeEntryTb4b4b4(Te6edf3indexTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3blocklistTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3spliceTb4b4b4(Te6edf3indexTb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3reloadTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3res Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/lxmf/message-blocklist"Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enabled Tff7b72= Tff7b72!Tff7b72!Te6edf3resTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3enabledTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3blocklist Tff7b72= Tff7b72thisTb4b4b4.Te6edf3mapFromApiTb4b4b4(Te6edf3resTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3blocklist Tff7b72|| Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.load_failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3saveTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isSaving Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3payload Tff7b72= Tb4b4b4{
Te6edf3enabledTff7b72: Tff7b72thisTb4b4b4.Te6edf3enabledTb4b4b4,
Te6edf3blocklistTff7b72: Tff7b72thisTb4b4b4.Te6edf3normalizeForSaveTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72const Te6edf3res Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3putTb4b4b4(Ta5d6ff"/api/v1/lxmf/message-blocklist"Tb4b4b4, Te6edf3payloadTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enabled Tff7b72= Tff7b72!Tff7b72!Te6edf3resTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3enabledTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3blocklist Tff7b72= Tff7b72thisTb4b4b4.Te6edf3mapFromApiTb4b4b4(Te6edf3resTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3blocklist Tff7b72|| Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.saved"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3msg Tff7b72=
Tb4b4b4(Te6edf3eTb4b4b4.Te6edf3response Tff7b72&& Te6edf3eTb4b4b4.Te6edf3responseTb4b4b4.Te6edf3data Tff7b72&& Te6edf3eTb4b4b4.Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3messageTb4b4b4) Tff7b72||
Te6edf3eTb4b4b4.Te6edf3message Tff7b72||
Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.save_failed"Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3msgTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isSaving Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onEnabledChangeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3putTb4b4b4(Ta5d6ff"/api/v1/lxmf/message-blocklist"Tb4b4b4, Tb4b4b4{
Te6edf3enabledTff7b72: Tff7b72thisTb4b4b4.Te6edf3enabledTb4b4b4,
Te6edf3blocklistTff7b72: Tff7b72thisTb4b4b4.Te6edf3normalizeForSaveTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(
Tff7b72thisTb4b4b4.Te6edf3enabled
Tff7b72? Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.enabled_toast"Tb4b4b4)
Tff7b72: Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.disabled_toast"Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3enabled Tff7b72= Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enabledTb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.save_failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3exportListTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3res Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/lxmf/message-blocklist/export"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3blob Tff7b72= Tff7b72new Te6edf3BlobTb4b4b4(Tb4b4b4[Tffa657JSONTb4b4b4.Te6edf3stringifyTb4b4b4(Te6edf3resTb4b4b4.Te6edf3dataTb4b4b4, Tff7b72nullTb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4]Tb4b4b4, Tb4b4b4{
Te6edf3typeTff7b72: Ta5d6ff"application/json"Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3DownloadUtilsTb4b4b4.Te6edf3downloadFileTb4b4b4(Ta5d6ff"meshchatx_message_blocklist.json"Tb4b4b4, Te6edf3blobTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.exported"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.export_failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3triggerImportTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3$refsTb4b4b4.Te6edf3importFileInputTff7b72?Tb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onImportFileTb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3file Tff7b72= Te6edf3eventTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3files Tff7b72&& Te6edf3eventTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3filesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4;
Te6edf3eventTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3value Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3fileTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3merge Tff7b72= Tff7b72await Te6edf3DialogUtilsTb4b4b4.Te6edf3confirmTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.import_merge_confirm"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3text Tff7b72= Tff7b72await Te6edf3fileTb4b4b4.Te6edf3textTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Tffa657document Tff7b72= Tffa657JSONTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3textTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3res Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/lxmf/message-blocklist/import"Tb4b4b4, Tb4b4b4{
Tffa657documentTb4b4b4,
Te6edf3mergeTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3blocklist Tff7b72= Tff7b72thisTb4b4b4.Te6edf3mapFromApiTb4b4b4(Te6edf3resTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3blocklist Tff7b72|| Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(
Te6edf3merge
Tff7b72? Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.imported_merge"Tb4b4b4)
Tff7b72: Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.imported_replace"Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3msg Tff7b72=
Tb4b4b4(Te6edf3eTb4b4b4.Te6edf3response Tff7b72&& Te6edf3eTb4b4b4.Te6edf3responseTb4b4b4.Te6edf3data Tff7b72&& Te6edf3eTb4b4b4.Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3messageTb4b4b4) Tff7b72||
Te6edf3eTb4b4b4.Te6edf3message Tff7b72||
Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"tools.message_blocklist.import_failed"Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3msgTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────